/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package org.mybeans;
 
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import javax.swing.JOptionPane;

/**
 *
 * @author avbravo
 */

/*
 * se coloco como año minimo 2007 ya que apartir de esa fecha
 * se inicia el uso del sistema.
 */ 
public class CierreAnualBeans {

    static int anio;
    static java.sql.Date fecha;
static double totalMorosidad;
    
    static String idusuario;
    static String idmunicipio;
    Sesion sesion;

    public static int getAnio() {
        return anio;
    }

    public static void setAnio(int anio) {
        CierreAnualBeans.anio = anio;
    }

   

    public CierreAnualBeans() {
        sesion = new Sesion();
    }

    public static double getTotalMorosidad() {
        return totalMorosidad;
    }

    public static void setTotalMorosidad(double totalMorosidad) {
        CierreAnualBeans.totalMorosidad = totalMorosidad;
    }

  

    public static String getIdmunicipio() {
        return idmunicipio;
    }

    public static void setIdmunicipio(String idmunicipio) {
        CierreAnualBeans.idmunicipio = idmunicipio;
    }

    public static String getIdusuario() {
        return idusuario;
    }

    public static void setIdusuario(String idusuario) {
        CierreAnualBeans.idusuario = idusuario;
    }
public static java.sql.Date getFecha() {
        return fecha;
    }

    public static void setFecha(java.sql.Date fecha) {
        CierreAnualBeans.fecha = fecha;
    }
    
    public boolean Consultar(int anio) {
        try {
            if (anio <= 2007) {
                JOptionPane.showMessageDialog(null, "Ingrese un año adecuado\nCierreAnualBeans.java\nConsultar()", "Mensaje", JOptionPane.INFORMATION_MESSAGE);
                return false;
            }
            if (sesion.Conectar() == false) {
                JOptionPane.showMessageDialog(null, "No se pudo establecer la conexion", "Mensaje", JOptionPane.INFORMATION_MESSAGE);
                return false;
            }

            String sqlquery = "select * from cierreanual where idmunicipio = ? and anio = ?";
            PreparedStatement psquery = sesion.con.prepareStatement(sqlquery);
            psquery.setString(1, sesion.getIdmunicipio());
            psquery.setInt(2, anio);
            ResultSet rs = psquery.executeQuery();
            rs.next();
            int x = rs.getRow();
            if (x == 0) {
                JOptionPane.showMessageDialog(null, "No existen registros para ese año", "Mensaje", JOptionPane.INFORMATION_MESSAGE);
                sesion.con.close();
                return false;
            }
            String activo = rs.getString("activo");
            if (activo.equals("no")) {
                JOptionPane.showMessageDialog(null, "Este registro esta inactivo", "Mensaje", JOptionPane.INFORMATION_MESSAGE);
                sesion.con.close();
                return false;
            }
            setAnio(anio);
            setTotalMorosidad(rs.getDouble("totalmorosidad"));;
            setFecha(rs.getDate("fecha"));
            setIdmunicipio(rs.getString("idmunicipio"));
            sesion.con.close();
            return true;
        } catch (Exception ex) {
            JOptionPane.showMessageDialog(null, "Error " + ex.getMessage(), "Error. Consultar()", JOptionPane.ERROR_MESSAGE);
        }
        return false;
    }

    /*
     *Esta funcion devuelve un valor de true si lo encontro
     * o false si no existe, no guarda el valor en los componentes
     * del bean, ni envia mensajes de si existe o no. 
     * 
     */ 
    public boolean VerificarExiste(int anio) {
        try {
            if (anio <= 2007) {
                JOptionPane.showMessageDialog(null, "Ingrese un año adecuado\nCierreAnualBeans.java\nVerificarExiste()", "Mensaje", JOptionPane.INFORMATION_MESSAGE);
                return false;
            }
            if (sesion.Conectar() == false) {
                JOptionPane.showMessageDialog(null, "No se pudo establecer la conexion", "Mensaje", JOptionPane.INFORMATION_MESSAGE);
                return false;
            }

            String sqlquery = "select * from cierreanual where idmunicipio = ? and anio = ?";
            PreparedStatement psquery = sesion.con.prepareStatement(sqlquery);
            psquery.setString(1, sesion.getIdmunicipio());
            psquery.setInt(2, anio);
            ResultSet rs = psquery.executeQuery();
            rs.next();
            int x = rs.getRow();
            if (x == 0) {
                sesion.con.close();
                return false;
            }
            sesion.con.close();
            return true;

        } catch (Exception ex) {
            JOptionPane.showMessageDialog(null, "Error " + ex.getMessage(), "Error. Consultar()", JOptionPane.ERROR_MESSAGE);
        }
        return false;
    }
    
      public boolean Agregar() {
        try {
            if (sesion.Conectar() == false) {
                JOptionPane.showMessageDialog(null, "No se pudo establecer la conexion", "Mensaje", JOptionPane.INFORMATION_MESSAGE);
                return false;
            }
            String sql = "INSERT into cierreanual "
                    +"(anio,fecha,totalmorosidad,activo,idusuario,idmunicipio)"+
                    "VALUES(?,?,?,?,?,?)";
            PreparedStatement prest = sesion.con.prepareStatement(sql);

            prest.setInt(1, getAnio());
            prest.setDate(2, getFecha());
            prest.setDouble(3, getTotalMorosidad());
            prest.setString(4, "si");
            prest.setString(5, sesion.getUsername());
            prest.setString(6, sesion.getIdmunicipio());
            
            int count = prest.executeUpdate();

            sesion.con.close();
            JOptionPane.showMessageDialog(null, "Cierre Anual guardado exitosamente", "Mensaje", JOptionPane.INFORMATION_MESSAGE);
            return true;

        } catch (Exception ex) {
            System.out.println("Error" + ex);
            JOptionPane.showMessageDialog(null, "Error " + ex.getMessage(), "Error.CierreAnualBeans.Agregar() ", JOptionPane.ERROR_MESSAGE);
        }
        return false;
    }
}
